import argparse


def get_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('--root', type=str, default='~/data')
    parser.add_argument('--dataset', type=int, choices=[10, 100], default=10)
    parser.add_argument('--r_id', type=float, choices=[0.1, 0.2], default=0.2)
    parser.add_argument('--r_ood', type=float, choices=[0.1, 0.2], default=0.2)
    parser.add_argument('--r_imb', type=float, choices=[0.1, 0.01], default=0.1)
    parser.add_argument('--asym', action='store_true', default=False)
    return parser.parse_args()


def extra_args(args):
    args.arch = 'resnet18'
    args.batch_size = 256
    args.low_dim = 128
    args.lr = 0.05
    args.lr_decay_rate = 0.1
    args.momentum = 0.9
    args.weight_decay = 5e-4
    args.lr_decay_epochs = '700,800,900'

    args.warm = 200
    args.epochs = 400

    args.seed = 1

    args.loss_weight = 0.5
    args.moco_queue = 8192
    args.moco_m = 0.999
    args.sigma = 0.2
    args.temperature = 0.3
    args.l = 0.5
    args.weight_cl = 0.5
    args.proto_m = 0.99
    return args


"""
[network]
arch = cnn
opt = sgd
batch_size = 256
low_dim = 128
lr = 0.05
lr_decay_rate = 0.1
momentum = 0.9
weight_decay = 5e-4

warm = 200
epochs = 400

resume = -1
gpu = -1

use_fp16 = True
seed = 1
temperature = 0.3
l = 0.5
weight_cl = 0.5
proto_m = 0.99


[cecl]
sim_thres = 0.6
exp_dir = experiment/CECL
print_freq = 100
workers = 16
"""